package class8;

/**
 * https://blog.csdn.net/u011386173/article/details/125408349
 * 打印折纸的折痕
 * 题目
 * 请把一段纸条竖着放置在桌子上，然后从纸条的下边向上方对折1次，压出折痕后展开。此时折痕是凹下去的，即折痕突起的方向指向纸条的背面。
 * 如果从纸条的下边向上方连续对折2次，压出折痕后展开，此时有三条折痕，从上到下依次是下折痕、下折痕和上折痕。
 * 给定一个输入参数 N NN，代表纸条都从下边向上方连续对折 N NN 次。 请从上到下打印所有折痕的方向。
 *
 */
public class Code07_PaperFolding {
    public static void main(String[] args) {
        boolean down = false;
        printProcess(1, 3, down);
    }

    /**
     * i是节点层数，N是一个层数，down==true 凹 down==false 凸
     *
     * @param i
     * @param N
     * @param down
     */
    public static void printProcess(int i, int N, boolean down) {
        if (i > N) return;
        printProcess(i + 1, N, true);
        System.out.print(i + (down ? "凹" : "凸")+"\t");
        printProcess(i + 1, N, false);
    }
}
